/** 
 * projectName:  
 * fileName:  
 * packageName:  
 * date: 
 * copyright(c) 2017-2020 xxx公司
 */
package cn.message.service;

import cn.itcast.pojo.admin;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;



/**   
 * @title: userService.java 
 * @package com.job.service 
 * @description: TODO
 * @author: 欧阳辉
 * @date: 2019年1月25日 下午3:17:36 
 * @version: V1.0   
*/
public interface adminService {

	boolean usernameChecked(String adminNickname);

	Map<String,Object> login(HttpServletResponse response, String adminNickname, String adminPassword, HttpSession session);

	admin getUserByLoginName(String adminNickname);

	boolean changeLoginState(Integer adminId, Integer state);

	boolean edit(HttpServletResponse response, HttpSession session, String token);

	admin getUserMsg(Integer adminId, String token);

	boolean updateAdmin(admin admin);

	boolean imageUpload(String imgpath, Integer adminId);

	/**
	 * 根据管理员的网名查询管理员信息
	 * @param adminId
	 * @return
	 */
	Map<String,Object> findAdminByAdminId(Integer adminId);

	/**
	 * 根据管理员的登录用户名查询管理员信息
	 * @param adminNickName
	 * @return
	 */
	admin findAdminByNickName(String adminNickName);

	/**
	 * 获取所有的管理员以及管理所拥有的角色信息
	 * @param map
	 * @return
	 */
	Map<String,Object> getAllAdmin(Map<String,String> map);

	/**
	 * 判断该管理员的用户名是否存在，存在返回true，不存在返回false
	 * @param adminNickName
	 * @return
	 */
	Boolean isOrNotAdminNickName(String adminNickName);

	/**
	 * 增加管理员以及添加相应的角色
	 * @param admin
	 * @param roleIds
	 * @return
	 */
	Boolean addAdminAndRole(admin admin, int[] roleIds);

	/**
	 * 修改管理员以及管理员的角色
	 * @param map
	 * @return
	 */
	Boolean updateAdminAndRole(Map<String,String> map);


	/**
	 * 删除该管理员以及该管理员拥有的角色
	 * @param map
	 * @return
	 */
	Boolean deleteAdmin(Map<String, String> map);


	/**
	 *功能：增加一个管理员
	 * @author 张松
	 * @date 2020/6/22
	  * @param admin
	 * @return java.lang.Integer
	 */
	Integer SavaAdmin(admin admin);
}
